/*
Copyright 2007 Raymond Giorgi

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
 */

package edu.pitt.CS2510.Messages;

import java.util.ArrayList;

import edu.pitt.CS2510.Nodes.Node;

/**
 * 
 * @author NoOne
 * 
 *         This message is sent from the Central to a Supervisor when it is
 *         giving the Supervisor some backup
 */
public class SupplyMessage extends Message {
	ArrayList<Integer> nodes;

	/**
	 * Nodes are the unique ID of the nodes being provided to the Supervisor.
	 * Giving it the unique ID lets the Supervisor direct contact with each
	 * Grunt The number of supplied nodes is inferred from calling nodes.size();
	 * 
	 * @param to
	 * @param from
	 * @param nodes
	 */
	public SupplyMessage(int to, int from, ArrayList<Integer> nodes) {
		super(to, from);
		this.nodes = nodes;
	}

	/**
	 * Calls the Supervisor's processSupplyMessage() method
	 */
	@Override
	public void processMessage(Node node) {
		if (from == 0) {
			node.getMessageHandler().processSupplyMessage(nodes);
		} else {
			System.out
					.println("This message can only come from the central node");
		}
	}
}
